<template>
    <div class="app-container">
        讲师列表 <br>

<!--查询表单-->
        <!--  传值给teacherQuery传给后台然后模糊查询  传值要与后台实体的属性名完全一样  -->
        <el-form :inline="true" class="demo-form-inline">
            <el-form-item>
                <el-input v-model="teacherQuery.nameLike" placeholder="讲师名" />
            </el-form-item>

            <el-form-item>
                <el-select v-model="teacherQuery.levelLike" clearable placeholder="讲师头衔">
                    <el-option :value="1" label="高级讲师" />
                    <el-option :value="2" label="首席讲师" />
                </el-select>
            </el-form-item>

            <el-form-item label="添加时间">
                <el-date-picker v-model="teacherQuery.beginLike" type="datetime" placeholder="选择开始时间"
                    value-format="yyyy-MM-dd HH:mm:ss" default-time="00:00:00" />
            </el-form-item>
            <el-form-item>
                <el-date-picker v-model="teacherQuery.endLike" type="datetime" placeholder="选择截止时间"
                    value-format="yyyy-MM-dd HH:mm:ss" default-time="00:00:00" />
            </el-form-item>

            <el-button type="primary" icon="el-icon-search" @click="fetchData()">查询</el-button>
            <el-button type="default" @click="resetData()">清空</el-button>
        </el-form>

<!-- 表格 -->
        <el-table v-loading="listLoading" :data="teacherList" element-loading-text="数据加载中" border fit
            highlight-current-row>
            <el-table-column label="序号" width="70" align="center">
                <template slot-scope="scope">
                    <!-- 分页公式计算 利用 当前页 和 页面大小 计算序号 -->
                    {{ (current - 1) * size + scope.$index + 1 }}
                </template>
            </el-table-column>

            <el-table-column prop="name" label="名称" width="80" />

            <el-table-column label="头衔" width="80">
                <template slot-scope="scope">
                    <!-- 根据level数字表示讲师级别 -->
                    {{ scope.row.level===1?'高级讲师':'首席讲师' }}
                </template>
            </el-table-column>

            <el-table-column prop="intro" label="资历" />

            <el-table-column prop="gmtCreate" label="添加时间" width="160" />

            <el-table-column prop="sort" label="排序" width="60" />

            <el-table-column label="操作" width="200" align="center">
                <template slot-scope="scope">
                    <!--  修改的请求url里面有id 可作为添加和修改的判断条件  -->
                    <router-link :to="'/edu/teacher/edit/'+scope.row.id">
                        <el-button type="primary" size="mini" icon="el-icon-edit">修改</el-button>
                    </router-link>
                    <el-button type="danger" size="mini" icon="el-icon-delete" @click="removeDataById(scope.row.id)">删除
                    </el-button>
                </template>
            </el-table-column>
        </el-table>

<!-- 分页 -->
        <el-pagination :current-page="current" :page-size="size" :total="total"
            style="padding: 30px 0; text-align: center;" layout="total, prev, pager, next, jumper"
            @current-change="fetchData" />

    </div>

</template>

<script>
// import teacher from '../../../api/edu/teacher';
import teacher from '@/api/edu/teacher';
export default {
    data() {
        return {
            listLoading: true, // 是否显示loading信息
            teacherList: null,
            total: 0,
            current: 1,
            size: 5,
            teacherQuery: {}
        }
    },
    created() {
        // 页面加载之前就传值进来
        this.fetchData()
    },
    methods: {
        // 不传值 current 为 1
        fetchData(current = 1) {
            // console.log('加载列表')
            this.current = current
            this.listLoading = true
            teacher.getPageList(this.current, this.size, this.teacherQuery)
                .then(response => {
                    // console.log(response)
                    if (response.success === true) {
                        this.teacherList = response.data.records
                        this.total = response.data.total
                    }
                    this.listLoading = false
                })
                .catch()
        },
        // 清空方法
        resetData(){
            this.teacherQuery = {}
            this.fetchData()
        },
        removeDataById(id){
            this.$confirm('是否删除讲师？','提示',{
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: "warning"
            }).then(()=>{   // 确认执行
                teacher.removeTeacherById(id)   // 异步删除
                    .then(response => {
                        this.$message({
                            type: 'success',
                            message: '删除成功'
                        })
                        this.fetchData(this.current)
                    })
            }).catch(() => {  // 点击取消
                this.$message({
                    type: 'info',
                    message: '已取消删除'   
                })
            })
        }
    }

}

</script>